package com.studyv3.framework.lock;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @description 分布式锁
 * @date 2023/9/28
 */
@Retention(value = RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface DistributedLock {

    /**
     * 分布式锁key
     **/
    String lockKey();

    /**
     * 获锁等待时间
     **/
    long waitTimeInMill() default 0;

    /**
     * 锁自动释放时间
     **/
    long leaseTimeInMill() default 10_000;

    /**
     * 获取失败提示
     **/
    String errMsg() default "获取分布式锁失败";

}
